/**
 * 
 */
package com.nari.baseinfo.service;

import java.io.File;
import java.util.List;
import java.util.Map;

import com.nari.baseinfo.model.IHeatStation;
import com.nari.coreframe.service.IGenericService;
import com.nari.platform.model.PageCond;
import com.nari.platform.model.ResponseMsg;
import com.nari.platform.model.ResultWithPageCond;

/**
 * 
 * @author Xiaopeng
 * @date 2013-8-1
 */
public interface IHeatStationService extends IGenericService<IHeatStation, String> {

	/**
	 * 根据所属城市ID查询换热站信息
	 * @param districtCityID 所属区级机构(可选)
	 * @param capitalCityID 所属市级机构(可选)
	 * @param provinceCityID 所属省级机构(可选)
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-8-23
	 */
	public List<IHeatStation> queryStationByBelongCity(String districtCityID, 
			String capitalCityID, String provinceCityID) throws Exception;
	
	/**
	 * 分页查询换热站信息
	 * @param stationName 换热站名称(可选)
	 * @param districtCityID 所属区级机构(可选)
	 * @param capitalCityID 所属市级机构(可选)
	 * @param provinceCityID 所属省级机构(可选)
	 * @param pageCond
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-8-7
	 */
	public ResultWithPageCond<IHeatStation> queryStationWithPageCond(String stationName, 
			String districtCityID, String capitalCityID, String provinceCityID, PageCond pageCond) throws Exception;
	
	/**
	 * 通过换热站列表查询与之关联的行政机构ID-机构名称映射表
	 * @param stationList 换热站列表，若列表为空，则返回空的映射表
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-8-7
	 */
	public Map<String, String> queryReferCitysByStationList(List<IHeatStation> stationList) throws Exception;
	
	/**
	 * 带附件上传的换热站信息添加及修改
	 * @param heatStation 换热站信息实体
	 * @param attachFile 安装图片附件
	 * @param fileName 附件文件名
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-8-24
	 */
	public ResponseMsg saveOrUpdateHeatStation(IHeatStation heatStation, File attachFile, 
			String fileName) throws Exception;
	
	/**
	 * 删除换热站附件
	 * @param heatStationUID
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-8-11
	 */
	public ResponseMsg deleteStationPicAttachFile(String heatStationUID) throws Exception;
	
	/**
	 * 通过换热站唯一标识删除换热站信息，并批次删除对应的换热站附件等
	 * @param heatStationUID
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-8-12
	 */
	public ResponseMsg deleteHeatStationByUID(String heatStationUID) throws Exception;
}
